﻿
package extremefx.ui.dnd {

	/**
	 * @author Marcelo Volmaro
	 */
	public interface IDropListener {
		function acceptDragSource(pComponent:IDragSource, pSourceData:SourceData):Boolean;
		
		/**
		 * When a drag action started.
		 */
		function dragStart(pArgs:DropEvent):void;
		
		/**
		 * Called while a drag operation is ongoing, when the mouse pointer enters a 
		 * drop target component area.
		 */
		function dragEnter(pArgs:DropEvent):void;
		
		/**
		 * Called when a drag operation is ongoing(mouse is moving), while the mouse 
		 * pointer is still over the entered component area.
		 */
		function dragOverring(pArgs:DropEvent):void;
		
		/**
		 * Called while a drag operation is ongoing, when the mouse pointer has exited 
		 * the entered a drop target component. 
		 */
		function dragExit(pArgs:DropEvent):void;
		
		/**
		 * Called when drag operation finished.
		 */
		function dragDrop(pArgs:DropEvent):void;
	}
}
